<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Catalago de Obras - Grupo 25: Referência do Arquivo keys.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Gerado por Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Página&nbsp;Principal</span></a></li>
      <li><a href="annotated.html"><span>Estruturas&nbsp;de&nbsp;Dados</span></a></li>
      <li class="current"><a href="files.html"><span>Arquivos</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Referência do Arquivo keys.c</h1><code>#include &quot;<a class="el" href="keys_8h-source.html">keys.h</a>&quot;</code><br>

<p>
<div class="dynheader">
Gráfico de dependência de inclusões para keys.c:</div>
<div class="dynsection">
<p><center><img src="keys_8c__incl.png" border="0" usemap="#keys.c_map" alt=""></center>
<map name="keys.c_map">
<area shape="rect" href="keys_8h.html" title="keys.h" alt="" coords="193,84,257,111"><area shape="rect" href="inserir_8h.html" title="inserir.h" alt="" coords="189,162,261,188"><area shape="rect" href="remove_8h.html" title="remove.h" alt="" coords="183,239,268,266"><area shape="rect" href="consulta_8h.html" title="consulta.h" alt="" coords="180,316,271,343"></map>
</div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Funções</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#5bbd0df5ab16b9def077546766685e56">atualiza_arquivos</a> (<a class="el" href="structNo__PK.html">pNo_PK</a> *obras, <a class="el" href="structNo__PK.html">pNo_PK</a> *sk_titulo, <a class="el" href="structNo__PK.html">pNo_PK</a> *sk_autor, <a class="el" href="structNo__PK.html">pNo_PK</a> *sk_tipo, <a class="el" href="structNo__PK.html">pNo_PK</a> *sk_ano, int *tamanho, int *tautor, int *ttitulo, int *ttipo, int *tano)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao para atualizar os arquivos de pk's, alem de carregar as sks na memoria.  <a href="#5bbd0df5ab16b9def077546766685e56"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427">Writefile</a> (FILE *origem, FILE *destino, int atual)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao que escreve os arquivos pks.  <a href="#7e0ecc99a20bbf339b8adc53999ea427"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d">Fillblanks</a> (char nome[], int tamanho)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao para completar espacos.  <a href="#05620ebe7f342b88290acca42decbb2d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d">Le_PK</a> (<a class="el" href="structNo__PK.html">pNo_PK</a> *obras, char *titulo, int nrr, int tamanho, int vetor)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao adicionar os registros de pk e sk na memoria em forma de vetor.  <a href="#96adb663f79b48c0f5748190fd37254d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#ea04db294721998a079fa7b622376c47">GravaArray</a> (char string[], int tamanho, <a class="el" href="structNo__PK.html">pNo_PK</a> obras)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao para gravar as informacoes dos vetores de pk e sk em arquivos (nrr.dat e sk_*.dat).  <a href="#ea04db294721998a079fa7b622376c47"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#ee839f2a736a2162764e7527cb163444">Str_toupper</a> (char *s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao para transformar uma str em maiusculo.  <a href="#ee839f2a736a2162764e7527cb163444"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca">Secondary</a> (<a class="el" href="structNo__PK.html">pNo_PK</a> *obras, FILE *origem, FILE *destino, int tamanhostr, int *indice, int atual, int *tamanho, int contador)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Funcao adicionar os registros de pk e sk na memoria em forma de vetor.  <a href="#58624719cdc6ac00aa134c8a676937ca"></a><br></td></tr>
</table>
<hr><h2>Funções</h2>
<a class="anchor" name="5bbd0df5ab16b9def077546766685e56"></a><!-- doxytag: member="keys.c::atualiza_arquivos" ref="5bbd0df5ab16b9def077546766685e56" args="(pNo_PK *obras, pNo_PK *sk_titulo, pNo_PK *sk_autor, pNo_PK *sk_tipo, pNo_PK *sk_ano, int *tamanho, int *tautor, int *ttitulo, int *ttipo, int *tano)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atualiza_arquivos           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>obras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>sk_titulo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>sk_autor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>sk_tipo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>sk_ano</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>tamanho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>tautor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>ttitulo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>ttipo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>tano</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao para atualizar os arquivos de pk's, alem de carregar as sks na memoria. 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obras</em>&nbsp;</td><td>O vetor que sera adicionado a chave primaria (nrr.dat) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sk_titulo</em>&nbsp;</td><td>Chave secundaria para titulo. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sk_autor</em>&nbsp;</td><td>Chave secundaria para autor. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sk_tipo</em>&nbsp;</td><td>Chave secundaria para tipo. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sk_ano</em>&nbsp;</td><td>Chave secundaria para ano. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>A quantidade de itens inseridos no obras </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tautor</em>&nbsp;</td><td>A quantidade de itens inseridos no sk_autor. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ttitulo</em>&nbsp;</td><td>A quantidade de itens inseridos no sk_titulo. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ttipo</em>&nbsp;</td><td>A quantidade de itens inseridos no sk_tipo. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tano</em>&nbsp;</td><td>A quantidade de itens inseridos no sk_ano. </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00005"></a>00005                                                                                                                                                                             {
<a name="l00006"></a>00006 
<a name="l00007"></a>00007         <span class="keywordtype">int</span> i = 1, b = 0, atual = 0; 
<a name="l00008"></a>00008         <span class="keywordtype">int</span> ititulo = 1, iautor = 1 , itipo = 1, iano = 1;
<a name="l00009"></a>00009         <span class="keywordtype">char</span> * buffer, titulo_aux[<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>+1];
<a name="l00010"></a>00010         <span class="keywordtype">size_t</span> result;
<a name="l00011"></a>00011         <span class="keywordtype">long</span> lSize;
<a name="l00012"></a>00012         FILE * base, *pk_titulo, *pk_tipo, *pk_autor, *pk_ano;
<a name="l00013"></a>00013         
<a name="l00014"></a>00014         <span class="comment">/* alocacao dos 5 vetores com espaco inicial para 20 registros */</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016         *obras = malloc((<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)*20)); 
<a name="l00017"></a>00017         *sk_titulo = malloc((<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)*20)); 
<a name="l00018"></a>00018         *sk_tipo = malloc((<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)*20)); 
<a name="l00019"></a>00019         *sk_autor = malloc((<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)*20)); 
<a name="l00020"></a>00020         *sk_ano = malloc((<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)*20)); 
<a name="l00021"></a>00021         base = fopen (<span class="stringliteral">"base25.dat"</span>,<span class="stringliteral">"rb"</span>);                               
<a name="l00022"></a>00022         <span class="keywordflow">if</span>(base) {                                                      <span class="comment">/* base existe */</span>
<a name="l00023"></a>00023                 fseek (base, 0 ,SEEK_END);
<a name="l00024"></a>00024                 lSize = ftell (base);  <span class="comment">/*calcula o tamanho total da base */</span>
<a name="l00025"></a>00025                 rewind (base);                  
<a name="l00026"></a>00026                 buffer = (<span class="keywordtype">char</span>*) malloc (<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>)*(<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>+1)); 
<a name="l00027"></a>00027                 
<a name="l00028"></a>00028                 <span class="comment">/* criacao do vetor que sera gravado no disco como nrr.dat posteriormente. Vetor de indices primarios */</span>
<a name="l00029"></a>00029                 
<a name="l00030"></a>00030                 <span class="keywordflow">for</span>(i=1;i&lt;=lSize/<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>;i++) { 
<a name="l00031"></a>00031                         result = fread (buffer,1,(<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>),base);    <span class="comment">/* recebe o titulo e o indice da obra */</span>
<a name="l00032"></a>00032                         *tamanho = <a class="code" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Le_PK</a>(&amp;(*obras),buffer,i,*tamanho,<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>);
<a name="l00033"></a>00033                         qsort (*obras, *tamanho, <span class="keyword">sizeof</span> (<a class="code" href="structNo__PK.html">No_PK</a>), <a class="code" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7">compara</a>);
<a name="l00034"></a>00034                         fseek (base, (<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>*i) ,SEEK_SET); 
<a name="l00035"></a>00035                 }
<a name="l00036"></a>00036                 
<a name="l00037"></a>00037                 <span class="comment">/* criacao dos arquivos vazios de pk para cada categoria */</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039                 pk_titulo = fopen (<span class="stringliteral">"pk_titulo.dat"</span>,<span class="stringliteral">"w"</span>);
<a name="l00040"></a>00040                 pk_tipo = fopen(<span class="stringliteral">"pk_tipo.dat"</span>,<span class="stringliteral">"w"</span>);
<a name="l00041"></a>00041                 pk_autor = fopen (<span class="stringliteral">"pk_autor.dat"</span>,<span class="stringliteral">"w"</span>);
<a name="l00042"></a>00042                 pk_ano = fopen(<span class="stringliteral">"pk_ano.dat"</span>,<span class="stringliteral">"w"</span>);
<a name="l00043"></a>00043 
<a name="l00044"></a>00044                 <span class="comment">/* criacao dos 4 sks (na memoria) em conjunto com os seus respectivos arquivos de pks */</span> 
<a name="l00045"></a>00045                 
<a name="l00046"></a>00046                 <span class="keywordflow">for</span>(i=1;i&lt;=lSize/<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>;i++) { 
<a name="l00047"></a>00047                         fseek(base, atual, SEEK_SET);
<a name="l00048"></a>00048                         fread (titulo_aux,1,(<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>),base);
<a name="l00049"></a>00049                          
<a name="l00050"></a>00050                         <span class="comment">/* caso o quinto caractere de titulo lido da base seja diferente de * (se tiver * quer dizer que foi removido e por isso nao deve ser adicionado nas nossas chaves) ele fara a adicao desse registro */</span>
<a name="l00051"></a>00051 
<a name="l00052"></a>00052                         <span class="keywordflow">if</span>(titulo_aux[4] != <span class="charliteral">'*'</span>) {
<a name="l00053"></a>00053                                 atual = <a class="code" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Secondary</a>(&amp;(*sk_titulo), base, pk_titulo , <a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>, &amp;ititulo, atual, &amp;(*ttitulo), b); 
<a name="l00054"></a>00054                                 atual = <a class="code" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Secondary</a>(&amp;(*sk_tipo), base, pk_tipo , <a class="code" href="consulta_8h.html#f2896e88c6e1bfbb010156b59c446eed">tam_tipo</a>, &amp;itipo, atual, &amp;(*ttipo), b);
<a name="l00055"></a>00055                                 atual = <a class="code" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Secondary</a>(&amp;(*sk_autor), base, pk_autor , <a class="code" href="consulta_8h.html#0b3318ca3a35e669f78b04ce1bda5e7e">tam_autor</a>, &amp;iautor, atual, &amp;(*tautor), b);
<a name="l00056"></a>00056                                 atual = <a class="code" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Secondary</a>(&amp;(*sk_ano), base, pk_ano, <a class="code" href="consulta_8h.html#a52272a387eb8699f37656ee15fe4d27">tam_ano</a>, &amp;iano, atual, &amp;(*tano), b); 
<a name="l00057"></a>00057                                 fseek (base, (<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>*i) ,SEEK_SET);
<a name="l00058"></a>00058                         }
<a name="l00059"></a>00059                         b++;
<a name="l00060"></a>00060                         atual = <a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>*i;
<a name="l00061"></a>00061                 }
<a name="l00062"></a>00062                 <span class="comment">/* fecha todos os arquivos abertos */</span>
<a name="l00063"></a>00063 
<a name="l00064"></a>00064                 fclose(base);
<a name="l00065"></a>00065                 fclose(pk_titulo);
<a name="l00066"></a>00066                 fclose(pk_tipo);
<a name="l00067"></a>00067                 fclose(pk_autor);
<a name="l00068"></a>00068                 fclose(pk_ano);
<a name="l00069"></a>00069         }
<a name="l00070"></a>00070 }
</pre></div>
<p>

<p>
<div class="dynheader">
Este é o grafo de chamadas para esta função:</div>
<div class="dynsection">
<p><center><img src="keys_8c_5bbd0df5ab16b9def077546766685e56_cgraph.png" border="0" usemap="#keys_8c_5bbd0df5ab16b9def077546766685e56_cgraph_map" alt=""></center>
<map name="keys_8c_5bbd0df5ab16b9def077546766685e56_cgraph_map">
<area shape="rect" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7" title="compara" alt="" coords="341,5,421,32"><area shape="rect" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor." alt="" coords="349,56,413,83"><area shape="rect" href="keys_8c.html#58624719cdc6ac00aa134c8a676937ca" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor." alt="" coords="191,107,281,133"><area shape="rect" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos." alt="" coords="481,132,559,159"><area shape="rect" href="keys_8c.html#ee839f2a736a2162764e7527cb163444" title="Funcao para transformar uma str em maiusculo." alt="" coords="331,208,432,235"><area shape="rect" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks." alt="" coords="343,107,420,133"></map>
</div>

</div>
</div><p>
<a class="anchor" name="05620ebe7f342b88290acca42decbb2d"></a><!-- doxytag: member="keys.c::Fillblanks" ref="05620ebe7f342b88290acca42decbb2d" args="(char nome[], int tamanho)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Fillblanks           </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>nome</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>tamanho</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao para completar espacos. 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nome</em>&nbsp;</td><td>Str a ser completada. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>Tamnho da str. </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00086"></a>00086                                           {
<a name="l00087"></a>00087         <span class="keywordtype">int</span> i;
<a name="l00088"></a>00088         <span class="keywordflow">for</span> (i=(strlen(nome)); i&lt;tamanho; i++) {
<a name="l00089"></a>00089                 nome[i] = <span class="charliteral">' '</span>;
<a name="l00090"></a>00090         }
<a name="l00091"></a>00091         nome[tamanho] = <span class="charliteral">'\0'</span>; <span class="comment">/*completa a str com espacos de acordo com o seu tamanho */</span>
<a name="l00092"></a>00092 }
</pre></div>
<p>

</div>
</div><p>
<a class="anchor" name="ea04db294721998a079fa7b622376c47"></a><!-- doxytag: member="keys.c::GravaArray" ref="ea04db294721998a079fa7b622376c47" args="(char string[], int tamanho, pNo_PK obras)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GravaArray           </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>string</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>tamanho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a>&nbsp;</td>
          <td class="paramname"> <em>obras</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao para gravar as informacoes dos vetores de pk e sk em arquivos (nrr.dat e sk_*.dat). 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>O nome do arquivo a ser criado. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>Quantos registros o vetor possui. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>obras</em>&nbsp;</td><td>Vetor correspondente. </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00108"></a>00108                                                           {
<a name="l00109"></a>00109         <span class="keywordtype">int</span> i;
<a name="l00110"></a>00110         FILE *teste = fopen ( <span class="keywordtype">string</span> , <span class="stringliteral">"w"</span> );
<a name="l00111"></a>00111         <span class="keywordflow">for</span>(i=0;i&lt;tamanho;i++) {
<a name="l00112"></a>00112                 fputs(obras[i].titulo,teste);  <span class="comment">/*grava as infos do vetor sk no disco (sk_*.dat) */</span> 
<a name="l00113"></a>00113                 fprintf(teste, <span class="stringliteral">"%.4d"</span>, obras[i].nrr);
<a name="l00114"></a>00114         }
<a name="l00115"></a>00115         fclose(teste);
<a name="l00116"></a>00116 }
</pre></div>
<p>

</div>
</div><p>
<a class="anchor" name="96adb663f79b48c0f5748190fd37254d"></a><!-- doxytag: member="keys.c::Le_PK" ref="96adb663f79b48c0f5748190fd37254d" args="(pNo_PK *obras, char *titulo, int nrr, int tamanho, int vetor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Le_PK           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>obras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>titulo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nrr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>tamanho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>vetor</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao adicionar os registros de pk e sk na memoria em forma de vetor. 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obras</em>&nbsp;</td><td>O vetor a ser adicionado a obra. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>titulo</em>&nbsp;</td><td>Str sobre a obra (titulo, autor, tipo, ano). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrr</em>&nbsp;</td><td>Seu nrr. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>Tamanho da str </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vetor</em>&nbsp;</td><td>Posicao do vetor.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>Retorna o novo tamanho</dd></dl>
<dl compact><dt><b>Valores Retornados:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>Nao foi adicionado </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho+1</em>&nbsp;</td><td>Foi adicionado </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00095"></a>00095                                                                         {
<a name="l00096"></a>00096         <span class="keywordflow">if</span> ((tamanho % 20 == 0) &amp;&amp; (tamanho != 0)) {     <span class="comment">/* realoca memoria caso tamanho maximo seja atingido*/</span>
<a name="l00097"></a>00097                 *obras = realloc (*obras,(tamanho+tamanho)*<span class="keyword">sizeof</span>(<a class="code" href="structNo__PK.html">No_PK</a>)); }
<a name="l00098"></a>00098 
<a name="l00099"></a>00099         <span class="keywordflow">if</span>(titulo[4] == <span class="charliteral">'*'</span>) <span class="keywordflow">return</span> tamanho;
<a name="l00100"></a>00100         <span class="keywordflow">else</span> {
<a name="l00101"></a>00101                 strcpy((*obras)[tamanho].titulo, titulo); <span class="comment">/*insere no vetor obras e adiciona '/0' no fim do titulo*/</span>
<a name="l00102"></a>00102                 (*obras)[tamanho].nrr = nrr;
<a name="l00103"></a>00103                 <span class="keywordflow">return</span> tamanho+1; <span class="comment">/* retorna o novo tamanho */</span>
<a name="l00104"></a>00104         }
<a name="l00105"></a>00105 }
</pre></div>
<p>

</div>
</div><p>
<a class="anchor" name="58624719cdc6ac00aa134c8a676937ca"></a><!-- doxytag: member="keys.c::Secondary" ref="58624719cdc6ac00aa134c8a676937ca" args="(pNo_PK *obras, FILE *origem, FILE *destino, int tamanhostr, int *indice, int atual, int *tamanho, int contador)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Secondary           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structNo__PK.html">pNo_PK</a> *&nbsp;</td>
          <td class="paramname"> <em>obras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>origem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>destino</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>tamanhostr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>indice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>atual</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>tamanho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>contador</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao adicionar os registros de pk e sk na memoria em forma de vetor. 
<p>
This function .... <dl class="author" compact><dt><b>Autor:</b></dt><dd>Fulano Ciclano Beltrano </dd></dl>
<dl class="date" compact><dt><b>Data:</b></dt><dd>15/02/2008 </dd></dl>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The length ... </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The width ... </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The height ... </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>vol The voulem ... </dd></dl>
<dl class="note" compact><dt><b>Observação:</b></dt><dd>Be sure that:<ul>
<li>length &gt; 0;</li><li>width &gt; 0;</li><li>height &gt; 0. </li></ul>
</dd></dl>
<dl class="see" compact><dt><b>Veja também:</b></dt><dd>calculate_area, calculate_size </dd></dl>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obras</em>&nbsp;</td><td>O vetor a ser adicionado a obra. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>origem</em>&nbsp;</td><td>A base de dados. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destino</em>&nbsp;</td><td>O arquivo a ser gravado (pk_*.dat) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanhostr</em>&nbsp;</td><td>Tamanho da str que esta sendo inserida </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>indice</em>&nbsp;</td><td>Indice de nrr. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>atual</em>&nbsp;</td><td>A posicao atual do arquivo destino. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tamanho</em>&nbsp;</td><td>Tamanho que esta os vetores sks ate o momento </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>contador</em>&nbsp;</td><td>Posicao atual da base.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>Retorna o tamanho atual atualizado.</dd></dl>
<dl compact><dt><b>Valores Retornados:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>atual</em>&nbsp;</td><td>+ tamanhostr; </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00127"></a>00127                                                                                                                               {
<a name="l00128"></a>00128         <span class="keywordtype">char</span> titulo[tamanhostr+1], aux2 [tamanhostr+1], aux[tamanhostr+1];
<a name="l00129"></a>00129         <a class="code" href="structNo__PK.html">pNo_PK</a> busca;
<a name="l00130"></a>00130         <span class="keywordtype">size_t</span> result;
<a name="l00131"></a>00131         <span class="keywordtype">char</span> *p;
<a name="l00132"></a>00132         fseek(origem, atual, SEEK_SET);
<a name="l00133"></a>00133         result = fread (titulo,1,(tamanhostr),origem);   <span class="comment">/* recebe o titulo e o indice da obra*/</span>
<a name="l00134"></a>00134         <a class="code" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos.">Fillblanks</a>(titulo, tamanhostr);
<a name="l00135"></a>00135         strcpy(aux,titulo);
<a name="l00136"></a>00136         p = strtok (titulo,<span class="stringliteral">" "</span>);
<a name="l00137"></a>00137         <a class="code" href="keys_8c.html#ee839f2a736a2162764e7527cb163444" title="Funcao para transformar uma str em maiusculo.">Str_toupper</a>(aux);
<a name="l00138"></a>00138         <span class="keywordflow">if</span> (p = strtok(NULL, <span class="stringliteral">" "</span>)) { <span class="comment">/* realiza a verificacao se uma str eh composta, caso seja, adicionara o titulo completo primeiramente */</span>
<a name="l00139"></a>00139                 <span class="keywordflow">if</span> (busca = bsearch (aux, *obras, *tamanho, <span class="keyword">sizeof</span> (<span class="keyword">struct</span> <a class="code" href="structNo__PK.html">No_PK</a>), <a class="code" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7">compara</a>)) { <span class="comment">/*caso ja existe no vetor sk */</span>
<a name="l00140"></a>00140                         <a class="code" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks.">Writefile</a>(origem, destino, contador*<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>); <span class="comment">/*escreve somente no arquivo com o indice atualizado */</span>
<a name="l00141"></a>00141                         fprintf(destino, <span class="stringliteral">"%.4d"</span>, busca-&gt;<a class="code" href="structNo__PK.html#8e709669c30740a3a8952ffdefa5bdf3">nrr</a>);
<a name="l00142"></a>00142                         busca-&gt;<a class="code" href="structNo__PK.html#8e709669c30740a3a8952ffdefa5bdf3">nrr</a> = *indice; <span class="comment">/*atualiza o vetor */</span> 
<a name="l00143"></a>00143                 }
<a name="l00144"></a>00144                 <span class="keywordflow">else</span> { <span class="comment">/* caso ainda nao exista */</span>
<a name="l00145"></a>00145                         *tamanho = <a class="code" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Le_PK</a>(&amp;(*obras),aux, *indice, *tamanho, tamanhostr); 
<a name="l00146"></a>00146                         <a class="code" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks.">Writefile</a>(origem, destino, contador*<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>); <span class="comment">/* adiciona tanto no vetor como no arquivo com indice -001 */</span>
<a name="l00147"></a>00147                         fputs(<span class="stringliteral">"-001"</span>,destino); 
<a name="l00148"></a>00148                 }
<a name="l00149"></a>00149                 *indice = *indice + 1; 
<a name="l00150"></a>00150         }
<a name="l00151"></a>00151         p = strtok(aux,<span class="stringliteral">" "</span>); 
<a name="l00152"></a>00152         strcpy(aux2,p);
<a name="l00153"></a>00153         <a class="code" href="keys_8c.html#ee839f2a736a2162764e7527cb163444" title="Funcao para transformar uma str em maiusculo.">Str_toupper</a>(aux2);
<a name="l00154"></a>00154         <a class="code" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos.">Fillblanks</a>(aux2, tamanhostr);
<a name="l00155"></a>00155         <span class="keywordflow">while</span> (p) { <span class="comment">/*adicao do titulo quebrado em pedacos (strtok) ate chegar ao final (NULL) */</span>
<a name="l00156"></a>00156                 <span class="keywordflow">if</span> (busca = bsearch (aux2, *obras, *tamanho, <span class="keyword">sizeof</span> (<span class="keyword">struct</span> <a class="code" href="structNo__PK.html">No_PK</a>), <a class="code" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7">compara</a>)) {
<a name="l00157"></a>00157                         <a class="code" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks.">Writefile</a>(origem, destino, contador*<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>); <span class="comment">/* !!Similar acima, apenas com a str quebrada!! */</span>
<a name="l00158"></a>00158                         fprintf(destino, <span class="stringliteral">"%.4d"</span>, busca-&gt;<a class="code" href="structNo__PK.html#8e709669c30740a3a8952ffdefa5bdf3">nrr</a>);
<a name="l00159"></a>00159                         busca-&gt;<a class="code" href="structNo__PK.html#8e709669c30740a3a8952ffdefa5bdf3">nrr</a> = *indice;
<a name="l00160"></a>00160                 }
<a name="l00161"></a>00161                 <span class="keywordflow">else</span> {
<a name="l00162"></a>00162                         *tamanho = <a class="code" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor.">Le_PK</a>(&amp;(*obras),aux2, *indice, *tamanho, tamanhostr);
<a name="l00163"></a>00163                         <a class="code" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks.">Writefile</a>(origem, destino, contador*<a class="code" href="consulta_8h.html#63e82776cfea43a18ab091e7d3a01b13">tam_total</a>);
<a name="l00164"></a>00164                         fputs(<span class="stringliteral">"-001"</span>,destino);                          <span class="comment">/* !!Similar acima, apenas com a str quebrada!! */</span>
<a name="l00165"></a>00165                 }
<a name="l00166"></a>00166                 *indice = *indice + 1; 
<a name="l00167"></a>00167                 <span class="keywordflow">if</span> (p = strtok (NULL,<span class="stringliteral">" "</span>)) {
<a name="l00168"></a>00168                         strcpy(aux2,p);         <span class="comment">/* quebra novamente e mantem o while ate null */</span>
<a name="l00169"></a>00169                         <a class="code" href="keys_8c.html#ee839f2a736a2162764e7527cb163444" title="Funcao para transformar uma str em maiusculo.">Str_toupper</a>(aux2);
<a name="l00170"></a>00170                         <a class="code" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos.">Fillblanks</a>(aux2, tamanhostr);
<a name="l00171"></a>00171                 }
<a name="l00172"></a>00172         }
<a name="l00173"></a>00173         qsort (*obras, *tamanho, <span class="keyword">sizeof</span> (<a class="code" href="structNo__PK.html">No_PK</a>), <a class="code" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7">compara</a>); <span class="comment">/* usa o qsort para ordenar o vetor atualizado em ordem alfabetica */</span>
<a name="l00174"></a>00174         atual += tamanhostr;
<a name="l00175"></a>00175         <span class="keywordflow">return</span> atual;<span class="comment">/*atualiza a posicao atual */</span>
<a name="l00176"></a>00176 
<a name="l00177"></a>00177 }
</pre></div>
<p>

<p>
<div class="dynheader">
Este é o grafo de chamadas para esta função:</div>
<div class="dynsection">
<p><center><img src="keys_8c_58624719cdc6ac00aa134c8a676937ca_cgraph.png" border="0" usemap="#keys_8c_58624719cdc6ac00aa134c8a676937ca_cgraph_map" alt=""></center>
<map name="keys_8c_58624719cdc6ac00aa134c8a676937ca_cgraph_map">
<area shape="rect" href="consulta_8c.html#c3f135f977e97ce51bde811fe4850fb7" title="compara" alt="" coords="157,5,237,32"><area shape="rect" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos." alt="" coords="297,132,375,159"><area shape="rect" href="keys_8c.html#96adb663f79b48c0f5748190fd37254d" title="Funcao adicionar os registros de pk e sk na memoria em forma de vetor." alt="" coords="165,107,229,133"><area shape="rect" href="keys_8c.html#ee839f2a736a2162764e7527cb163444" title="Funcao para transformar uma str em maiusculo." alt="" coords="147,157,248,184"><area shape="rect" href="keys_8c.html#7e0ecc99a20bbf339b8adc53999ea427" title="Funcao que escreve os arquivos pks." alt="" coords="159,208,236,235"></map>
</div>

</div>
</div><p>
<a class="anchor" name="ee839f2a736a2162764e7527cb163444"></a><!-- doxytag: member="keys.c::Str_toupper" ref="ee839f2a736a2162764e7527cb163444" args="(char *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Str_toupper           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao para transformar uma str em maiusculo. 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>A string a ser transformado. </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00118"></a>00118                           { 
<a name="l00119"></a>00119 <span class="keywordflow">while</span>(*s)
<a name="l00120"></a>00120         {
<a name="l00121"></a>00121                 *s=toupper(*s); <span class="comment">/* Transforma uma str em maiuscula char por char */</span>
<a name="l00122"></a>00122                 s++;
<a name="l00123"></a>00123         }
<a name="l00124"></a>00124 }
</pre></div>
<p>

</div>
</div><p>
<a class="anchor" name="7e0ecc99a20bbf339b8adc53999ea427"></a><!-- doxytag: member="keys.c::Writefile" ref="7e0ecc99a20bbf339b8adc53999ea427" args="(FILE *origem, FILE *destino, int atual)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Writefile           </td>
          <td>(</td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>origem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>destino</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>atual</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Funcao que escreve os arquivos pks. 
<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>origem</em>&nbsp;</td><td>Base de dados. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destino</em>&nbsp;</td><td>Pk correspondente. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>atual</em>&nbsp;</td><td>Posicao atual do arquivo destino. </td></tr>
  </table>
</dl>
<div class="fragment"><pre class="fragment"><a name="l00073"></a>00073                                                        {
<a name="l00074"></a>00074         <span class="keywordtype">char</span> *nome;
<a name="l00075"></a>00075 
<a name="l00076"></a>00076         nome = (<span class="keywordtype">char</span> *)malloc(<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>)*(<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>+2)); 
<a name="l00077"></a>00077         fseek(origem, atual, SEEK_SET);  <span class="comment">/*coloca o cursor de leitura na posicao atual */</span>
<a name="l00078"></a>00078         fgets(nome, <a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>+1, origem);
<a name="l00079"></a>00079         <a class="code" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos.">Fillblanks</a>(nome,<a class="code" href="consulta_8h.html#4e08e3da16a5821367047709c8f0f2a6">tam_titulo</a>); 
<a name="l00080"></a>00080         fputs(nome, destino); <span class="comment">/* escreve a str nome no arquivo */</span>
<a name="l00081"></a>00081         free(nome); <span class="comment">/* libera a memoria */</span>
<a name="l00082"></a>00082         
<a name="l00083"></a>00083 }
</pre></div>
<p>

<p>
<div class="dynheader">
Este é o grafo de chamadas para esta função:</div>
<div class="dynsection">
<p><center><img src="keys_8c_7e0ecc99a20bbf339b8adc53999ea427_cgraph.png" border="0" usemap="#keys_8c_7e0ecc99a20bbf339b8adc53999ea427_cgraph_map" alt=""></center>
<map name="keys_8c_7e0ecc99a20bbf339b8adc53999ea427_cgraph_map">
<area shape="rect" href="keys_8c.html#05620ebe7f342b88290acca42decbb2d" title="Funcao para completar espacos." alt="" coords="135,5,212,32"></map>
</div>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Gerado em Mon Apr 28 16:38:42 2008 para Catalago de Obras - Grupo 25 por&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>
